﻿using System;

namespace Entidades.Models
{
    public class GuionAutorizacionTransicionInfo
    {
        #region Constructores

        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public GuionAutorizacionTransicionInfo()
        {
        }

        /// <summary>
        /// 
        /// </summary>
        public GuionAutorizacionTransicionInfo(GuionAutorizacionTransicion autorizacionTransicion)
        {
            this.Id = autorizacionTransicion.Id;
            this.IdGuion = autorizacionTransicion.Guion.Id;
            this.Autorizacion = new GuionAutorizacionInfo(autorizacionTransicion.Autorizacion);
            this.Aprobada = autorizacionTransicion.Aprobada;
            this.Comentarios = autorizacionTransicion.Comentarios;
            this.IdUsuarioInicio = autorizacionTransicion.UsuarioInicio.Id;
            this.IdUsuarioNotificado = autorizacionTransicion.UsuarioNotificado != null ? autorizacionTransicion.UsuarioNotificado.Id : default(int);
            this.FechaInicio = autorizacionTransicion.FechaInicio;
            this.IdUsuarioFin = autorizacionTransicion.UsuarioFin != null ? autorizacionTransicion.Id : default(int);
            this.UsuarioInicio = autorizacionTransicion.UsuarioInicio != null ? autorizacionTransicion.UsuarioInicio.Descriptor : String.Empty;
            this.FechaFin = autorizacionTransicion.FechaFin.HasValue ? autorizacionTransicion.FechaFin : new DateTime?();
            this.UsuarioFin = autorizacionTransicion.UsuarioFin != null ? autorizacionTransicion.UsuarioFin.Descriptor : String.Empty;
        }

        #endregion

        public int Id { get; set; }

        public int IdGuion { get; set; }

        public string Comentarios { get; set; }

        public GuionAutorizacionInfo Autorizacion { get; set; }
    
        public bool? Aprobada { get; set; }
       
        public int IdUsuarioInicio { get; set; }

        public string UsuarioInicio { get; set; }

        public int IdUsuarioNotificado { get; set; }
     
        public DateTime FechaInicio { get; set; }

        public int IdUsuarioFin { get; set; }

        public string UsuarioFin { get; set; }

        public DateTime? FechaFin { get; set; }
    }
}
